package com;

import com.wn.bean.Account;
import com.wn.config.SpringConfig;
import com.wn.mapper.AccountMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import java.io.IOException;
import java.io.InputStream;

/**
 * @author yellow Docter
 * @date 2022 -07-08
 * @desc
 *
 *  spring 整合mybatis
        01 把 db.properties       这个文件交给 spring管理
        02 mybatis中的连接需要交给  spring管理

        03 需要 把 sqlSessionFactoryBean  交给 spring管理
        04 需要 把 mapper                 交给 spring管理

    实现步骤:
         01.添加依赖
            spring-jdbc的依赖          管理操作jdbc
            mybatis-spring的依赖       桥梁依赖, mybatis 和spring 进行关联

         02 把db.properties 这个文件交给spring管理
             @PropertySource("classpath:db.properties")

         03 mybatis中的连接需要交给 spring管理
             @Bean
             public DruidDataSource druidDataSource(){}

         04 把sqlSessionFactoryBean给spring管理
             @Bean
             public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){}

         05 把mapper交给spring管理:
            @Bean
            public MapperScannerConfigurer mapperScannerConfigurer(){}
 */
public class App2 {

    public static void main(String[] args) throws IOException {

        //01 创建容器
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);

        //02 拿到mapper
        AccountMapper accountMapper = applicationContext.getBean(AccountMapper.class);

        //03 调用方法
        Account account = accountMapper.findAccountById(1);
        System.out.println("account = " + account);

    }

}
